<!DOCTYPE html>
<html lang="zh-cn">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title></title>
		<style>
			
		</style>
		<script>
			var arr = [1,2,3,4];

			// 每循环一次执行这个回调函数
			/*
				第一次调用回调函数会从数组中拿前两个值
				第2次调用回调函数，回调函数的第一个参数是上一次回调函数的返回值
				....
			*/
			let n = arr.reduce(function (item1,item2){
				console.log(item1,item2);
				return item1 + item2	
			});

			console.log(n);
			/*
				给reduce传入了第二个参数：
					第一次调用回调函数的第一个参数，是初始值，第二个参数就是从数组中拿第一个值
				第2次调用回调函数，回调函数的第一个参数是上一次回调函数的返回值
				....
			*/
			let m = arr.reduce((item1,item2) => {
				console.log(item1,item2);
				return item1 + item2;
			},100);


			var o = [
				{
					n:1,
					m:2
				},
				{
					n:2,
					m:3
				}
			];

			let miaov = o.reduce((item1,item2) => {
				return item1 + item2.n
			},100);

			console.log(miaov);

			var o1 = [
				{
					n:1,
					m:2
				},
				{
					n:2,
					m:3
				}
			];

			let ketang = o1.reduce((item1,item2) => {
				return {
					n: item1.n + item2.n,
					m: item1.m + item2.m,
				}
			},{n:100,m:50});

			console.log(ketang);

		</script>
	</head>

	<body>
		
	</body>
</html>